home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Nibble Volume 12, No. 12 (1991-12)(MindCraft Publishing)(Side A)[a].zip / Nibble Volume 12, No. 12 (1991-12)(MindCraft Publishing)(Side A)[a].po / STARTUP.bas < prev    next >
BASIC Source File  |  1996-12-24  |  6KB  |  121 lines

  1. 10  REM ******* 8/08/86 *******
  2. 20  REM *   ProDOS  STARTUP   *
  3. 30  REM *       BY  OWL       *
  4. 40  REM * COPYRIGHT (C)  1987 *
  5. 50  REM * BY MINDCRAFT PUBL. *
  6. 60  REM * LINCOLN, MA   01773 *
  7. 70  REM ***********************
  8. 75  REM  THANKS TO RUSS HOUGHTON OF BALTIMORE, MD., FOR REVISING THE OPENING GRAPHIC (11-90).
  9. 80  LOMEM: 16384
  10. 90  HOME : PRINT :D$ =  CHR$(4): PRINT  CHR$(21)
  11. 100  ONERR  GOTO 970
  12. 110  REM  ********** GET HI-RES SCREEN AND SET DISPLAY SWITCHES
  13. 120  VTAB 11: HTAB 3: PRINT "MINDCRAFT PRESENTS NIBBLE SOFTWARE"
  14. 130  VTAB 15: HTAB 13: PRINT "PLEASE WAIT..."
  15. 140  PRINT D$"BLOAD STARTUP.SCREEN"
  16. 150 G =  PEEK( -16297) + PEEK( -16300) + PEEK( -16301) + PEEK( -16304)
  17. 160  REM  ********** READ INFO FROM NIBMENU TEXTFILE
  18. 170  GOSUB 1120
  19. 180  DIM P$(20): REM   P$ = PROGRAM NAME        
  20. 190  DIM S$(300): REM S$ = LINES OF TEXT INSTRUCTIONS
  21. 200  DIM RC$(20): REM   RC$ = COMMAND USED TO RUN PROGRAM
  22. 210  DIM MP$(20): REM   MP$ = PROGRAM NAME TO APPEAR IN MENU
  23. 220  PRINT D$;"OPEN NIBMENU"
  24. 230  PRINT D$;"READ NIBMENU"
  25. 240  INPUT A$: REM  A$ = DISK NAME
  26. 250 NA$ = "NIBBLE " +A$: VTAB 22: HTAB 20 -( LEN(NA$)/2): PRINT NA$: VTAB 1
  27. 260  INPUT NP: REM   NP = NUMBER OF PROGRAMS ON DISK
  28. 270  FOR I = 1 TO NP: INPUT P$(I): NEXT I
  29. 280  INPUT MM: REM  MM = NUMBER OF VALID MENU ENTRIES
  30. 290  FOR I = 1 TO MM: INPUT MP$(I): INPUT RC$(I): NEXT I
  31. 300  INPUT S$
  32. 310 I = 0
  33. 320 I = I +1: CALL 768,S$(I)
  34. 330  IF  MID$ (S$(I),1,1) = "#"  THEN 350
  35. 340  GOTO 320
  36. 350  PRINT D$;"CLOSE"
  37. 360  IF  PEEK( -1101) < >6  THEN  GOSUB 1080: REM  ********** UPPER/LOWER CASE ROUTINE
  38. 370  REM  ********** FIRST TEXT SCREEN
  39. 380  TEXT : HOME : VTAB 3
  40. 390  PRINT "Thank you for ordering the Nibble": PRINT A$;"!": PRINT 
  41. 400  PRINT "The programs on this disk are:": PRINT 
  42. 410  FOR Z = 1 TO NP: HTAB 5: PRINT P$(Z): NEXT Z
  43. 420  GOSUB 1030: IF FLAG$ = "ESC"  THEN  GOTO 600
  44. 430  REM  ********** CYCLE THRU NIBMENU TEXT SCREENS
  45. 440 A = 1
  46. 450  HOME : VTAB 3
  47. 460  IF S$(A) = "@"  THEN  GOSUB 1030: HOME : VTAB 3: ON (  NOT (FLAG$ = "ESC")) GOTO 490: GOTO 600
  48. 470  IF S$(A) = "#"  THEN 510
  49. 480  PRINT S$(A)
  50. 490 A = A +1: GOTO 460
  51. 500  REM  ********** LAST TEXT SCREEN BEFORE MENU
  52. 510  HOME : VTAB 3
  53. 520  HTAB 6: PRINT "Thanks again for your order !"
  54. 530  VTAB 12: INVERSE 
  55. 540  HTAB 6: PRINT "ALL PROGRAMS ON  THIS DISK ARE"
  56. 550  HTAB 6: PRINT "COPYRIGHT (C)  1991  BY NIBBLE"
  57. 560  HTAB 6: PRINT "MINDCRAFT   PUBLISHING   CORP."
  58. 565  HTAB 6: PRINT "P.O. BOX 256, LINCOLN, MA 01773"
  59. 570  NORMAL : VTAB 17: HTAB 5: PRINT "UNAUTHORIZED COPYING IS ILLEGAL"
  60. 580  GOSUB 1030
  61. 590  REM  ********** SET UP MENU
  62. 600 ME = MM +2:X$(0) = "   ":X$(1) = "-->": HOME 
  63. 610  VTAB 1: HTAB 1: PRINT "Selection:           <ESC>: Instructions"
  64. 620  VTAB 3: PRINT "----------------------------------------";
  65. 630  VTAB 5: HTAB 20 -( LEN(A$)/2): PRINT A$
  66. 640  FOR I = 1 TO ME -2: VTAB 6 +1 *I: HTAB 8: PRINT I". "MP$(I): NEXT 
  67. 650  VTAB 6 +1 *(ME -1): HTAB 8: PRINT ME -1". Catalog Disk"
  68. 660  VTAB 6 +1 *ME: HTAB 8: PRINT ME". Quit"
  69. 670  VTAB 21: PRINT "----------------------------------------"
  70. 680  VTAB 23: HTAB 1: PRINT "Type number or use arrows, then <RETURN>";:PX = 10:SX = 4:SL = 1
  71. 690  REM  ********** SELECT CHOICE
  72. 700 N = SL:OS = SL: GOSUB 780:Z = 0: VTAB 24: CALL  -868
  73. 710  VTAB 1: HTAB 12: PRINT SL: POKE 49168,0: WAIT  -16384,128::Z$ =  CHR$( PEEK( -16384) -128): IF Z$ > = "1"  AND Z$ < =  STR$(ME)  THEN SL =  VAL(Z$):N = OS: GOSUB 780: GOTO 700
  74. 720 Z = (Z$ =  CHR$(21)  OR Z$ =  CHR$(10)) -(Z$ =  CHR$(8)  OR Z$ =  CHR$(11)) +10 *(Z$ =  CHR$(13)) +20 *(Z$ =  CHR$(27)): ON   NOT Z GOSUB 950
  75. 730  IF Z = 20  THEN  GOTO 380
  76. 740 SL = SL +Z *(Z <10):SL = SL -ME *(SL >ME) +ME *(SL <1)
  77. 750 N = OS: GOSUB 780: ON Z <10 GOTO 700
  78. 760  GOTO 800
  79. 770  REM  ********** PRINT POINTER SUBROUTINE
  80. 780  VTAB 6 +1 *N: HTAB SX: PRINT X$(SL = OS);: RETURN 
  81. 790  REM  ********** SELECTION ROUTINE
  82. 800  IF SL = (ME -1)  THEN  GOSUB 860: GOTO 600
  83. 810  IF SL = ME  THEN  GOSUB 900:SL = 1: GOSUB 780: GOTO 680
  84. 820  VTAB 2: HTAB 1: PRINT "                   ": INVERSE : VTAB 2: HTAB 1: PRINT RC$(SL): NORMAL 
  85. 830  REM  ********** EXECUTE A VALID MENU CHOICE
  86. 840  POKE 49168,0: PRINT : GOSUB 1100: HOME : PRINT D$;RC$(SL)
  87. 850  REM   ********** CATALOG SELECTED 
  88. 860  HOME : POKE 49168,0: PRINT : PRINT D$;"CAT": PRINT 
  89. 870  VTAB 24: HTAB 7: PRINT "Press <RETURN> to continue";
  90. 880  POKE 49168,0: WAIT 49152,128: RETURN 
  91. 890  REM   ********** QUIT SELECTED
  92. 900  VTAB 22: PRINT : CALL  -958: PRINT "Do you really want to quit? (Y/N)";: POKE 49168,0
  93. 910  POKE 49168,0: WAIT 49152,128
  94. 920  IF  PEEK(49152) = 249  OR  PEEK(49152) = 217  THEN  POKE 49168,0: HOME : GOSUB 1100: END 
  95. 930  RETURN 
  96. 940  REM   ********** SOUND BUZZER FOR WRONG KEYSTROKE 
  97. 950  FOR EQ = 1 TO 10:EY =  PEEK( -16336) - PEEK( -16336): NEXT EQ: RETURN 
  98. 960  REM   ********** ERROR HANDLING ROUTINE
  99. 970  HOME : TEXT 
  100. 980  IF  PEEK( -1101) < >6  THEN  HOME : PRINT D$"PR#A$300"
  101. 990  IF  PEEK(222) = 6  OR  PEEK(222) = 8  THEN  VTAB 19: PRINT  CHR$(7);"Disk Error. Please insert Nibble disk": GOTO 1010
  102. 1000  VTAB 19: PRINT  CHR$(7);"An error #" PEEK(222)" has occurred. "
  103. 1010  VTAB 23: PRINT "Press <RETURN> to continue              ";: CALL  -958: POKE 49168,0: WAIT 49152,128: GOTO 600
  104. 1020  REM   ********** WAIT FOR KEYSTROKE
  105. 1030 FLAG$ = ""
  106. 1040  VTAB 23: PRINT "<RETURN> for next page or <ESC> for menu";: POKE 49168,0: WAIT 49152,128
  107. 1050  IF  PEEK(49152) = 155  THEN FLAG$ = "ESC"
  108. 1060  RETURN 
  109. 1070  REM  *********** ATTACH UPPER/LOWER CASE ROUTINE
  110. 1080  FOR I = 0 TO 13: READ ML: POKE 768 +I,ML: NEXT I: PRINT D$"PR#A$300": RETURN 
  111. 1090  REM   ********** DETACH UPPER/LOWER CASE HANDLER  
  112. 1100  PRINT  CHR$(4);"PR#0": RETURN 
  113. 1110  REM  ********** INSTALL INPUT-ANYTHING ROUTINE
  114. 1120  FOR X = 768 TO 839: READ A: POKE X,A: NEXT : RETURN 
  115. 1130  REM  ********** INPUT-ANYTHING ROUTINE DATA
  116. 1140  DATA  32,190,222,32,227,223,36,17,208,5,162,163,76,18,212,133,133,132,134,165
  117. 1150  DATA  184,164,185,133,135,132,136,32,44,213,173,0,2,201,3,208,3,76,99,216
  118. 1160  DATA  169,0,133,13,133,14,169,0,160,2,32,237,227,32,61,231,32,123,218,165
  119. 1170  DATA  135,164,136,133,184,132,185,32,183,0,96,0
  120. 1180  REM  ********** UPPER/LOWER CASE ROUTINE DATA
  121. 1190  DATA  216,201,225,144,6,201,251,176,2,233,31,76,240,253,0